## 数据集中图片太多，隔n张图片取一张图片
import os
import shutil

def select_images(src_folder, dest_folder, interval=1):
    # 确保目标文件夹存在，不存在则创建
    if not os.path.exists(dest_folder):
        os.makedirs(dest_folder)

    # 获取源文件夹中所有文件，并按文件名排序
    files = sorted(os.listdir(src_folder))

    # 按指定的间隔筛选图片
    selected_files = files[::interval + 1]  # 每隔interval张图片选择1张

    # 将选中的图片复制到目标文件夹
    for file_name in selected_files:
        src_file = os.path.join(src_folder, file_name)
        dest_file = os.path.join(dest_folder, file_name)
        shutil.copy(src_file, dest_file)
        print(f"已复制：{file_name}")

# 示例调用
src_folder = "D:/研究生/科研相关/无人艇专项/视觉数据集制作/total_202411062125/images"
dest_folder = "D:/研究生/科研相关/无人艇专项/视觉数据集制作/total_202411062125/images0"
interval = 2  # 每隔1张取一张，可以调整为其他值
select_images(src_folder, dest_folder, interval)
